home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 December / PCWorld_2006-12_cd.bin / v cisle / robocopy / rktools.exe / RCDATA / CABINET / rktools.msi / frsflags.vbs < prev    next >
Text File  |  2003-04-18  |  6KB  |  186 lines

  1. '****************************************************************************
  2. '*
  3. '*  Copyright (c) 2003 Microsoft Corporation.  All rights reserved.
  4. '* 
  5. '*  File:           frsflags.vbs
  6. '*  Created:        09/10/2002
  7. '*  Author:         Huseyin Dursun [HuseyinD]
  8. '*
  9. '*  Main Function:  Updating/displaying "fRSFlags" attribute of a given 
  10. '*                  SYSVOL or DFS replica under a given domain. 
  11. '*
  12. '*
  13. '*  cscript frsflag.vbs { -s | -u | -d } <ReplicaName>  <DomainName>
  14. '*
  15. '*
  16. '****************************************************************************
  17.  
  18.  
  19. Option Explicit 
  20.  
  21. Call Run()
  22.  
  23.  
  24. '****************************************************************************
  25. '*
  26. '*  Function Run
  27. '*
  28. '****************************************************************************
  29.  
  30. Function Run()
  31.  
  32.    Dim oTarget
  33.    Dim objArg
  34.    Dim intArgCount
  35.    Dim intFlag
  36.    Dim Root
  37.    Dim Replica
  38.    Dim Domain
  39.    Dim DomainController
  40.    Dim LDAPStr
  41.    Dim InstallOverrideStatus
  42.  
  43. '--
  44. '--  Input validation and argument processing
  45. '--
  46.     Set objArg  = WScript.Arguments
  47.     intArgCount = objArg.Count
  48.  
  49.  
  50.     If ( intArgCount <> 3 ) Then
  51.        Usage()
  52.     ElseIf objArg(0) = "-s" Then
  53.        intFlag = 1
  54.     ElseIf objArg(0) = "-u" Then
  55.        intFlag = 0
  56.     ElseIf objArg(0) = "-d" Then
  57.        intFlag = 2
  58.     Else 
  59.        Usage()
  60.     End If
  61.  
  62.     Replica = objArg(1)
  63.     Domain  = objArg(2)
  64.  
  65. '--
  66. '-- Generate AD compatible domain name out of user input dotted domain name
  67. '--
  68.     DomainController = "DC=" & Replace(Domain, ".", ",DC=")    
  69.  
  70. '--
  71. '-- Replace sysvol with the full sysvol replica name and generate LDAP
  72. '-- search string . 
  73. '-- 
  74.  
  75.     If (LCase(Replica) = "sysvol") Then
  76.  
  77.         Replica = "Domain System volume (SYSVOL Share)"
  78.  
  79.         LDAPStr =  "LDAP://" & Domain & "/CN=" & Replica                     & _
  80.                    ",CN=File Replication Service,CN=System,"                 & _
  81.                    DomainController
  82.     Else
  83.  
  84.         '--
  85.         '--  We need to extract the root from DFS link
  86.         '--
  87.         
  88.         Root = mid( Replica, 1, InStr( 1, Replica, "|", 1) - 1 )
  89.  
  90.         LDAPStr =  "LDAP://" & Domain & "/CN=" & Replica & ",CN=" & Root     & _
  91.                    ",CN=DFS Volumes,CN=File Replication Service,CN=System,"  & _
  92.                    DomainController
  93.  
  94.     End If 
  95.  
  96.     WScript.Echo "  " & LDAPStr
  97.  
  98.  
  99. '--
  100. '-- Now, access the replica container in AD and get the value of fRSFlags
  101. '--
  102.  
  103.     Set oTarget = GetObject(LDAPStr)
  104.  
  105.     If intFlag = 1 Then
  106.        InstallOverrideStatus = " -- Install Override Enabled"
  107.     ElseIf intFlag = 0 Then
  108.        InstallOverrideStatus = " -- Install Override Disabled"
  109.     Else
  110.        InstallOverrideStatus = ""
  111.     End If
  112.  
  113.     WScript.Echo "  Replica/Domain    : " & Replica & "/" & DomainController
  114.     WScript.Echo "  Current FRS Flags : " & oTarget.fRSFlags 
  115.  
  116.  
  117. '--
  118. '-- If it is not a "show" request then update the attribute in DS
  119. '--
  120.  
  121.     If NOT intFlag = 2 Then 
  122.         oTarget.fRSFlags = intFlag
  123.         oTarget.SetInfo
  124.         WScript.Echo "  New FRS Flags     : " & oTarget.fRSFlags & InstallOverrideStatus 
  125.     End If
  126.  
  127.    
  128. End Function 
  129.  
  130.  
  131. '****************************************************************************
  132. '*
  133. '*  Function Usage
  134. '*
  135. '****************************************************************************
  136.  
  137. Function Usage()
  138.  
  139.  
  140.     WScript.Echo ""
  141.     WScript.Echo "FRSFLAGS.VBS --- Copyright (c) 2003 Microsoft Corporation"
  142.     WScript.Echo ""
  143.     WScript.Echo "  Enables/Disables/Displays ""install override"" functionality of "
  144.     WScript.Echo "  File Replication Service. Functionality is defined per replica  "
  145.     WScript.Echo "  and replica name along with domain name is needed to set/unset  "
  146.     WScript.Echo "  'fRSFlags' attribute. "
  147.     WScript.Echo ""
  148.     WScript.Echo ""
  149.     WScript.Echo "  Usage: "  
  150.     WScript.Echo ""
  151.     WScript.Echo "     frsflags.vbs { -s | -u | -d } <ReplicaName> <DomainName>"
  152.     WScript.Echo ""
  153.     WScript.Echo "     -s    : Sets the flag for given replica"
  154.     WScript.Echo "     -u    : Unsets the flag for given replica"
  155.     WScript.Echo "     -d    : Displays current value of flag"
  156.     WScript.Echo ""
  157.     WScript.Echo "     <ReplicaName>   : Name of the replica can be either domain based DFS root or "  
  158.     WScript.Echo "                       just SYSVOL"
  159.     WScript.Echo "     <DomainName>    : Full domain name in dotted format. "
  160.     WScript.Echo ""
  161.     WScript.Echo ""
  162.     WScript.Echo "  Examples: "
  163.     WScript.Echo ""
  164.     WScript.Echo "     cscript frsflags.vbs -s ""Root|MyDFS"" ""frs.corp.abc.com"" "
  165.     WScript.Echo "     cscript frsflags.vbs -d ""sysvol"" ""frs.corp.abc.com"" "
  166.     WScript.Echo ""
  167.     WScript.Echo ""
  168.     WScript.Echo "  Verification through ntfrsutl:"
  169.     WScript.Echo ""
  170.     WScript.Echo "     ""ntfrsutl sets"" displays value of Install Override flag under " 
  171.     WScript.Echo "     ""RepSetObjFlags"" attribute. You'll see one of the following lines:"
  172.     WScript.Echo ""
  173.     WScript.Echo "        Disabled :  RepSetObjFlags: 00000000 Flags [<Flags Clear>]      "
  174.     WScript.Echo "        Enabled  :  RepSetObjFlags: 00000001 Flags [InstallOverride ]   "
  175.     WScript.Echo ""
  176.     WScript.Echo ""
  177.     WScript.Echo "  Notes: "
  178.     WScript.Echo ""
  179.     WScript.Echo "     o  For sysvol replica just enter ""sysvol"" (case-insensitive) "
  180.     WScript.Echo "     o  If replica is not found in the AD then script will return (NULL) : 0x80005000 "
  181.     WScript.Echo ""
  182.  
  183.     WScript.Quit(1)
  184.  
  185. End Function
  186.